/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package clases_test;


import clases.Usuario;


import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.FlushModeType;
import javax.persistence.Persistence;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
/**
 *
 * @author juanjito
 */
public class testUser {

     EntityManagerFactory emf = Persistence.createEntityManagerFactory("recetasUnit");
    EntityManager em;
    
    Usuario u1;
    Usuario u2;
    
    public testUser(){}
    
    @BeforeClass
    public static void setUpClass() throws Exception {
    }

    @AfterClass
    public static void tearDownClass() throws Exception {
    }

    @Before
    public void setUp() {
        em = emf.createEntityManager();
        em.setFlushMode(FlushModeType.AUTO);
     
        
    }

    @After
    public void tearDown() {
        em.close();
    }
    

    
    private Usuario createUsuario(String nombre, String email, String pass){
        Usuario u = new Usuario();
        u.setEmail(email);
        u.setNombre(nombre);
        u.setPass(pass);
        
        return u;
    }
    
    @Test
    public void persistUsuario() {
        em.getTransaction().begin();
        

        
        u1 = createUsuario("Manolo","manolo@hotmail.com","manolo");
        u2 = createUsuario("Paco","paco@hotmail.com","paco");
        // Insertamos los usuarios
        em.persist(u1);
        em.persist(u2);
        
        assertEquals("Receta "+u1.getNombre()+" (ID "+u1.getId()+") inserted!.",
                u1.getId(), 1);
        
        em.getTransaction().commit();
    }   
    
    //Imprime los usuarios para saber que estan bien insertados
    @Test
    @SuppressWarnings("empty-statement")
    public void extractUsuarios() throws FileNotFoundException, IOException
    {   
        
       
        List<Usuario> usuarios = new ArrayList();
        
        //Aqui sacamos toda la lista de resultados
        usuarios =em.createQuery("SELECT u FROM Usuario u WHERE u.id>0").getResultList();
        
         for(int j=0;j<usuarios.size();j++) {
            
        
            System.out.println("Nombre del Usuario: "+usuarios.get(j).getNombre());
            System.out.println("Email: "+usuarios.get(j).getEmail());
         }
    }    
    
  
}
